import axios from 'axios';

// axios.defaults.withCredentials = true
// 创建axios实例
const service = axios.create({
    baseURL: process.env.BASE_API, // api的base_url
    timeout: 5000,                  // 请求超时时间
    withCredentials:true
});

// request拦截器
// service.interceptors.request.use(config => {
//     // Do something before request is sent
//     if (store.getters.token) {
//         config.headers['X-Token'] = getToken(); // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
//     }
//     return config;
// }, error => {
//     // Do something with request error
//     console.log(error); // for debug
//     Promise.reject(error);
// })

// respone拦截器
service.interceptors.response.use(
    response => {
        /**
         * 下面的注释为通过response自定义code来标示请求状态，当code返回如下情况为权限有问题，登出并返回到登录页
        * 如通过xmlhttprequest 状态码标识 逻辑可写在下面error中
        */
        const res = response.data;
        if (!res.success) {
            // 50008:非法的token; 50012:其他客户端登录了;  50014:Token 过期了;
            if (res.code === 50008 || res.code === 50012 || res.code === 401) {
            }
            else {
                // Message({
                //     message: res.message,
                //     type: 'error',
                //     duration: 5 * 1000
                // });
            }
            return Promise.reject('error');
        } else {
            return response.data;
        }
    },
    error => {
        console.log('err' + error);// for debug
        // Message({
        //     message: error.message,
        //     type: 'error',
        //     duration: 5 * 1000
        // });
        return Promise.reject(error);
    }
)

export default service;
